#ifndef __WIZ_ARCHIVE_FORWORDDECLARE_HPP__SHANHAOBO_19800429__
#define __WIZ_ARCHIVE_FORWORDDECLARE_HPP__SHANHAOBO_19800429__

#include "../../Base/WizBase.hpp"

namespace Wiz
{
    namespace Archive
    {
        namespace VerNum
        {
            WIZ_DECLARE(::Wiz::UInt32::Type);
        } /// end of namespace VerNum

        namespace Version
        {
            class Type;
            WIZ_DECLARE(::Wiz::Archive::Version::Type);
        } /// end of namespace Version

        namespace ClassID
        {
            class Type;
            WIZ_DECLARE(::Wiz::Archive::ClassID::Type);
        } /// end of namespace ClassID

        namespace ObjectID
        {
            class Type;
            WIZ_DECLARE(::Wiz::Archive::ObjectID::Type);
        } /// end of namespace ObjectID

        namespace RmDup
        {
            struct Type;
            WIZ_DECLARE(::Wiz::Archive::RmDup::Type);
        } /// end of namespace RmDup

        namespace ClassName
        {
            struct Type;
            WIZ_DECLARE(::Wiz::Archive::ClassName::Type);
        } /// end of namespace ClassName

        //////////////////////////////////////////////////////////////////////////

        namespace Writer
        {
            namespace Base
            {
                struct Type;
                WIZ_DECLARE(::Wiz::Archive::Writer::Base::Type);

                namespace Impl
                {
                    struct Type;
                    WIZ_DECLARE(::Wiz::Archive::Writer::Base::Impl::Type);
                } /// end of namespace Impl
            } /// end of namespace Base
        } /// end of namespace Writer

        namespace Reader
        {
            namespace Base
            {
                struct Type;
                WIZ_DECLARE(::Wiz::Archive::Reader::Base::Type);
            } /// end of namespace Base
        } /// end of namespace Reader

        namespace Serializer
        {
            namespace Writer
            {
                namespace Base
                {
                    struct Type;
                    WIZ_DECLARE(::Wiz::Archive::Serializer::Writer::Base::Type);
                } /// end of namespace Base

                namespace Pointer
                {
                    struct Type;
                    WIZ_DECLARE(::Wiz::Archive::Serializer::Writer::Pointer::Type);
                } /// end of namespace Pointer
            } /// end of namespace Writer

            namespace Reader
            {
                namespace Base
                {
                    struct Type;
                    WIZ_DECLARE(::Wiz::Archive::Serializer::Reader::Base::Type);
                } /// end of namespace Base

                namespace Pointer
                {
                    struct Type;
                    WIZ_DECLARE(::Wiz::Archive::Serializer::Reader::Pointer::Type);
                } /// end of namespace Pointer
            } /// end of namespace Reader
        } /// end of namespace Serializer
    } /// end of namespace Archive
} /// end of namespace Wiz

#endif /*__WIZ_ARCHIVE_FORWORDDECLARE_HPP__SHANHAOBO_19800429__*/
